﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Xml;

namespace IURIP
{
    /// <summary>
    /// The IPropagator interface. It submits target data to the destination system.
    /// </summary>
    public interface IPropagator
    {
        /// <summary>
        /// Gets the task.
        /// </summary>
        ITask Task { get; }
        /// <summary>
        /// Gets the propagator name
        /// </summary>
        string Name { get; }
        /// <summary>
        /// Submits data to the destination system.
        /// </summary>
        /// <param name="process"></param>
        void SubmitData(IProcess process);
        /// <summary>
        /// Validates the data that will be submit to destination system.
        /// </summary>
        void Validate();

        /// <summary>
        /// Initalizes the propagator by configuration file
        /// </summary>
        /// <param name="node"></param>
        void InitByConfiguration(XmlNode node);
    }
}
